The following relates to bus systems that operate at speeds where propagation delays become significant, and to such systems that include a plurality of bus channels and corresponding bus clocks.
FIG. 1 is a block diagram showing a high-speed digital computer bus system 20. The bus system includes a number of discrete devices 22-24, which communicate over an electrical bus 30 at very high speeds. The bus speeds are sufficiently high that propagation delays from device to device must be accounted for very carefully.
The described system includes a master device 22 and a plurality of slave devices 23-24. The master device 22 initiates and controls data exchanges over bus 30. It is located at one end of the bus, referred to herein as the master end of the bus. Slave devices 23-24 are spaced along the remaining portions of the bus, toward its other end. This other end of the bus is referred to herein as the termination end because the individual bus lines at this end are terminated by termination resistances (not shown). The lines are unterminated at the master end of the bus.
Devices 22-24 transfer data synchronously, with reference to the signal edges of two bus clock signals: CLOCKTOMASTER (CTM) 32 and CLOCKFROMASTER (CFM) 34. These signals are part of bus 30, although they are shown separately for clarity.
CTM 32 is generated by a clock source 36 at a desired bus frequency such as 400 MHz. The clock source signal is connected to CTM 32 at the termination end of the bus, so that the clock signal propagates from the termination end to the master end. At the master end, in close physical proximity to the master device 22, the CTM signal turns around and becomes CFM 34. The CFM signal then propagates back from the master end to the termination end of the bus, where it is terminated with a resistance Rterm. Because of propagation delays, the phase of CTM and CFM vary along the length of the bus. This variation is significant in relation to the frequency of the signals.
Each of devices 22-24 is coupled and configured to synchronize with the edges of CTM and CFM. Slave devices 23-24 transmit data with the edges of CTM 32 and receive data with the edges of CFM 34. Master device 22 transmits data with the edges of CFM 32 and receives data with the edges of CTM 34. Clock and data signals remain synchronized as they propagate toward their destinations because the clock lines are configured to have the same device-to-device delays as the other lines of bus 30.
Examples of this configuration are implemented in systems that comply with a standard specified by Rambus, Inc, of Mountain View, Calif. High-speed memory devices that comply with the Rambus standard are becoming widely available. Details and specifications regarding the Rambus standard are available directly from Rambus.
The high-speed bus system described above is typically part of a larger system 36, such as (for example) a computer motherboard or other system board. Within such systems, the master device typically acts as an interface between the bus system and the larger system.
FIG. 2 shows a master device 22 that connects to and communicates through a high-speed bus or bus subsystem such as shown in FIG. 1. Master device 22 is typically an ASIC (application-specific integrated circuit) containing custom logic circuits. It connects to a high-speed bus 30 such as shown in FIG. 1 and to other system components, such as components of a motherboard on which the high-speed bus subsystem is integrated.
Master device 22 includes access logic 46 for communicating properly over bus 30, in accordance with the electrical specifications defined for the bus. In many systems, access logic 46 comprises a custom macro cell, available from Rambus, Inc., that can be easily incorporated into an ASIC. This cell performs all the signal voltage conversions required to communicate with the high-speed bus channel.
Typically, a bus system 20 such as shown in FIG. 1 will run much faster than components of the larger computer system of which bus system 20 is a part. In addition, clock source 36, if left to run independently, is not synchronized with other computer components. However, inconvenient to synchronize bus system 20 with the components of the larger computer system data transfers to and from bus system 20 through ASIC 22. Specifically, synchronization of the high-speed bus subsystem to the other circuits of a system reduces or eliminates data transfer latencies that might otherwise become necessary.
FIG. 3 shows one prior art technique for achieving such synchronization. This technique synchronizes the information flow between the master device and its access logic.
The synchronization system shown in FIG. 3 includes a master device 50 (implemented as an ASIC) that interfaces between a high-speed bus subsystem and other components. The ASIC includes a user-designed portion 52 and a high-speed bus-interface portion 54, also referred to as access logic. As described above, the access logic 54 is supplied from Rambus as a custom macro cell. The high-speed bus-interface portion runs in synchronization with the CTM and CFM signals discussed above.
The system includes an external system clock source 56 that generates an ASIC clock signal PCLK. PCLK is used as a system clock within the user designed portion 52 of the ASIC.
CTM is generated by an external clock generator 58 and received by the access logic portion of ASIC 50. CTM is also received by other bus devices (not shown).
Because of bus propagation delays, the phase of CTM varies as it travels from clock generator 58 to ASIC 50. CTM is 400 MHz in this example, but is divided by four within access logic 54 to produce a 100 MHz clocking signal for use within access logic 54. This internal clocking signal is called SYNCLK.
The purpose of the synchronization described herein is to match both the frequency and phase of PCLK and SYNCLK at the boundary between user-designed portion 52 and access logic 54. Such synchronization allows data transfers across this boundary without additional latency.
Synchronization is performed by external clock generator 58, in response to the PCLK and SYNCLK signals. PCLK and SYNCLK are routed from the ASIC to external clock generator 58 with signal traces that are matched in both impedance and propagation delay, on the ASIC as well as on the board upon which the components are mounted. These signal lines are not part of the high-speed bus.
Before PCLK and SYNCLK are routed from ASIC 50, they are divided appropriately by ratio logic 60 so that they both have the same frequency. Specifically, PCLK is divided by M to produce PCLK/M, and SYNCLK is divided by N to produce SYNCLK/N.
Clock generator 58 generates CTM based on a signal REFCLK. REFCLK may be derived from the system clock source 56. However, this is not requiredxe2x80x94there is no requirement regarding phase alignment of these two signals. In response to REFCLK, clock generator 58 generates CTM at a frequency that is either equal to that of REFCLK or is some even multiple of the REFCLK frequency.
Clock generator 58 has logic to compare the phases of PCLK/M and SYNCLK/N, and to delay CTM by an amount that eliminates any significant phase difference between PCLK/M and SYNCLK/N. This, in turn, ensures that PCLK and SYNCLK are in sync within ASIC 50. Such synchronization allows low-latency data transfers between user-designed portion 52 and high-speed bus-interface portion 54.
Rambus, Inc., has designed a circuit that performs the functions of clock generator 58. This circuit is known as the Direct Rambus(copyright) Clock Generator (DRCG). Specifications are available from Rambus. Actual embodiments of this clock generator are available from several electronics manufacturers. Details regarding high-speed bus-interface portion 54 are also available in data sheets available from Rambus that describe Rambus"" xe2x80x9cDRACxe2x80x9d (Direct Rambus(copyright) ASIC Cell) product.
High-speed bus 30 (as specified by Rambus, Inc.) can achieve data transfer speeds of up to 1.6 Gbytes/second. However, applications with much higher bandwidth requirements are becoming common. This has created a need to use multiple high-speed bus channels, and to incorporate multiple high-speed bus-interfaces (such as access logic 54) on single ASICs. Furthermore, there is often a need for each of these bus channels to be synchronized with each other and with a clock signal (PCLK, for example) used by components other than the high-speed bus subsystem.
Rambus"" existing DRAC product provides for such synchronization as shown in FIG. 4. ASIC 70 of FIG. 4 includes two high-speed bus-interface portions or DRACs 72 and 74. Interface 72 is connected as already described with reference to FIG. 3, to supply SYNCLK to a clock generator 76 through ratio logic 78. User-designed logic 80 receives PCLK from a clock source 75. The clock source also provides a reference clock to clock generator 76.
Clock generator 76 generates CTM, which is buffered using a clock buffer driver chip 77 to produce individual, synchronized clock signals CTM1 and CTM2. Access logic 72 uses CTM1, while access logic 74 uses CTM2.
Interfaces 72 and 74 comprise the predefined Rambus DRAC circuitry mentioned above. Each DRAC includes an input called SYNCLKIN, which is used to synchronize two DRACs. The DRAC which forms interface 72 has a SYNCLKFD output signal which corresponds in phase and frequency to SYNCLK. SYNCLKFD of interface 72 is connected to the SYNCLKIN input of interface 74. DRAC 74 has internal circuitry for synchronizing its internal SYNCLK signal with the signal received at SYNCLKIN. This also requires matching CTM2 with CTM1, resulting in a synchronized phase between the SYNCLK signals of the two interfaces 72 and 74.
This arrangement works well in certain situations. However, the following conditions need to be met:
The routing delay of the signal trace from SYNCLKFD to SYNCLKIN should be under a nanosecond.
The phase difference between CTM1 and CTM2 should be within 100 picoseconds. This requires that the individual clock traces (CTMS) be closely matched (within a few microseconds).
The PCLK signals received by both DRACs should be in phase to within a few hundred picoseconds.
The first of these requirements is becoming increasingly difficult to provide, because of the very large die sizes being used on current-generation ASICs. The second requirement is also difficult at times, and usually demands tight tolerances from board layout tools. The second requirement also necessitates an additional clock driver chip, which increases costs significantly.
Thus, there is a need for a method of synchronizing multiple high-speed bus interfaces in this environment, in a manner that will relax some of the requirements found in prior art methods.
Described below is a technique for interfacing to a high-speed bus subsystem having a plurality of bus channels, wherein each bus channel has an independent channel clock signal. A master device or other interface component receives and utilizes a system clock signal and a channel clock signal (generated by one of the clock generators) for each channel.
Each channel has a clock generator. For each channel, a derivative of the system clock signal and a derivative of the channel clock signal are routed to a clock generator of the type described above. The clock generator compares the received signals, and generates its channel clock signal at a phase which eliminates any significant phase difference between the system clock signal and the channel clock signal.
Each channel clock signal is synchronized with the system clock signal using this technique, with an independent clock generator being used to generate the channel clock signal for each channel. This ensures that the system clock signal and each channel clock signal are in phase within the interface component.